package com.cy.comstore.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/** 定义处理器拦截器 */
public class LoginInterceptor implements HandlerInterceptor {

    /**
     * 检测全局session对象中是否有过uid数据，有则放行，没有则重定向到登录页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器（核心功能做url+controller的映射）
     * @return 返回值为true表放行，false表拦截
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //HttpServletRequest对象来获取session对象
        Object uid = request.getSession().getAttribute("uid");
        //没有uid说明用户没有登录过系统，则重定向到login.html页面
        if (uid==null){
            response.sendRedirect("/web/login.html");
            //结束后续调用
            return false;
        }
        return true;
    }
}
